package com.momo.background.service.impl;

import com.momo.background.dao.mapping.EXT.HotelInfoMapper;
import com.momo.background.dao.mapping.EXT.HotelUserMapperExt;
import com.momo.background.dto.HotelInfoDto;
import com.momo.background.service.HotelInfoService;
import com.momo.background.vo.AdminVo;
import com.momo.background.vo.HotelBrankVo;
import com.momo.background.vo.HotelInfo;
import com.momo.background.vo.IdVo;
import com.momo.hotel.dao.pojo.TbHotelBrank;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

@Service
public class HotelInfoServiceImpl implements HotelInfoService {
    @Resource
    HotelUserMapperExt hotelUserMapperExt;
    @Override
    public HotelBrankVo getHotelInfo(String id) {
        return hotelUserMapperExt.getHotelInfo(id);
    }

    @Override
    public int hotelInfoSave(HotelBrankVo hotelBrankVo) {
        return hotelUserMapperExt.hotelInfoSave(hotelBrankVo);
    }

    @Override
    public List<HotelInfo> SelectAllRoom(HotelInfo hotelInfo) {
        return hotelUserMapperExt.SelectAllRoom(hotelInfo);
    }

    @Override
    public HotelInfo GetRoomByroomID(HotelInfo hotelInfo) {
        return hotelUserMapperExt.GetRoomByroomID(hotelInfo);
    }

    @Override
    public int roomInfoUpdate(HotelInfo hotelInfo) {
        HotelInfo hotelInfo1 = new HotelInfo();
        HotelInfo hotelInfo2 = new HotelInfo();
        hotelInfo1.setRoomPrice(hotelInfo.getRoomPrice());
        hotelInfo1.setRoomDescribe(hotelInfo.getRoomDescribe());
        hotelInfo1.setRoomId(hotelInfo.getRoomId());
        hotelInfo1.setHotelid(hotelInfo.getHotelid());


        hotelInfo2.setRoomType(hotelInfo.getRoomType());
        hotelInfo2.setRoomId(hotelInfo.getRoomId());
        hotelInfo2.setHotelid(hotelInfo.getHotelid());
        int rset1=hotelUserMapperExt.roomInfoUpdate1(hotelInfo1);
        int rset2=hotelUserMapperExt.roomInfoUpdate2(hotelInfo2);
        return rset1+rset2;
    }

    @Override
    public List<HotelInfoDto> SelectAllHotel(HotelInfoDto hotelInfoDto) {
        return hotelUserMapperExt.SelectAllHotel(hotelInfoDto);
    }

    @Override
    public List<HotelInfoDto> SelectHotelById(String hotelId) {
        return hotelUserMapperExt.SelectHotelById(hotelId);
    }

    @Override
    public Boolean UpdateHotelInfo(HotelInfoDto hotelInfoDto) {

        int i = hotelUserMapperExt.UpdateHotelInfo(hotelInfoDto);
        if(i>0){
            return true;
        }
        return false;
    }

    @Override
    public int deleteHotelById(String hotelId) {
        return hotelUserMapperExt.deleteHotelById(hotelId);
    }

    @Override
    public int insertHotelInfo(HotelInfoDto hotelInfoDto) {
        int i1=0;
        int i2=0;
        int i3=0;
        try {
            HotelInfoDto hotelInfoDto1 = new HotelInfoDto();
            hotelInfoDto1.setHotelName(hotelInfoDto.getHotelName());
            hotelInfoDto1.setLocation(hotelInfoDto.getLocation());
            hotelInfoDto1.setHotelPhone(hotelInfoDto.getHotelPhone());

            HotelInfoDto hotelInfoDto2 = new HotelInfoDto();
            hotelInfoDto2.setHotelPrice(hotelInfoDto.getHotelPrice());
            String hotelDate = hotelInfoDto.getHotelDate();
            String format = "yyyy-MM-dd";
            Date date = new SimpleDateFormat(format).parse(hotelDate);
            hotelInfoDto2.setHotelDateTime(date);

            i1 = hotelUserMapperExt.insertHotelInfo1(hotelInfoDto);
            i2 = hotelUserMapperExt.insertHotelInfo2(hotelInfoDto);
            i3 = hotelUserMapperExt.updateHotelid();
        } catch (ParseException e) {
            e.printStackTrace();
        }

        return i1+i2+i3;
    }

    @Override
    public int insertRoom(HotelInfo hotelInfo) {
        int i1=hotelUserMapperExt.insertRoom1(hotelInfo);
        int i2=hotelUserMapperExt.insertRoom2(hotelInfo);
        return i1+i2;
    }
}
